1. Field of the Invention
The present invention relates to office automation and specifically to the automation of virtually all clerical functions in an office, such as for example, an insurance agency. It involves means for the creation of virtually any document generated by the office without the need for pre-printed forms and the automation of clerical activity involved in maintaining, updating, retrieving, displaying and printing information relating to the functions of the office.
One feature of this invention relates to means for storing a complete audit history of all activity to a specific database (DB) file record without saving the entire DB record in a historical file.
Another feature of this invention relates to means for permitting a worker to interrupt a particular task and execute a different task, without losing information already entered for the first task, and without being permitted to exit the system without completing or accounting for the first task.
A further feature of the present invention relates to a method of generating printed forms on a laser or equivalent printer without the user needing to learn the specific Page Description Language (PDL) of a particular brand of laser printer.
2. State of the Art
Although there has been much publicity given to the idea that widespread use of computers would usher in an age of the "paperless office" or "electronic office," for the most part such predictions are yet to be realized. The present inventor believes that certain inadequacies of current computer technology prevent available systems from achieving this potential. By addressing and overcoming these inadequacies, the present invention permits the implementation of computer systems which can truly be said to achieve the primary goals of office automation.
When a body of information is to be shared and accessed in common by more than one worker in an office, a system with greater power than a conventional personal computer is needed. The present invention involves a system including a multi-terminal business computer with the ability to create and access a common database while maintaining an audit history of all additions and changes, with the ability to produce filled-in forms on an as-needed basis, and with the ability to permit the operator to interrupt a current task in favor of a more urgent one, without losing data and the ability to return where the first task was left off.
As the body of information in a database (DB) is created, added to, and changed as new and corrected data is entered, it is important to be able to determine when and under what circumstances each entry was made. The purpose of such a feature is to be able to isolate any errors, either systematic errors or inadvertent errors, that may have been made in the data, so that they may be corrected; a further advantage of such a feature is to be able to determine what the state of facts was at any time in the past. For accounting systems, and more generally for DBs that maintain such information, a trail of entries modifying a particular record is generally known as an "audit trail," and in general the information comprising the history of a given DB or portion of a DB is known as an "audit history."
It has been customary in the past to maintain an audit history of a DB file by saving complete copies of each DB record in a historical file. As time passes, and the number of changes made to any specific record increases, enormous amounts of disk storage are required to maintain the audit history of the DB files. This causes the system designer to make several compromises. The number of DB files for which history will be maintained is severely limited, or there must be a periodical compression of the history images to conserve disk space, with the consequence that detail of audit information is lost. The ability to maintain audit history on a wide range of DB files without the necessity of compressing out the detail would be a valuable tool to any system designer.
One of the primary failures of many multi-user office automation systems is that the programs do not operate in the same way an employee would operate manually. Specifically, workers are constantly being interrupted by requests for information by other employees or by outside clients.
Using past systems, when a worker is involved in a computer-related function (e.g. adding a new client or customer to the database) and is interrupted by a phone call from an existing client who has a question about last month's statement, the employee would have to choose from among the following alternatives:
1. Take down some basic information from the client, offer to call the client back once the information has been found, finish up the computer operation currently in progress, and then call up the necessary programs to answer the client's inquiry. In that event, the client would have to wait for a callback. PA1 2. Throw away the work done so far by aborting the current computer operation and then call up the programs necessary to answer the client's inquiry. Later, the work thrown away would have to be re-entered. PA1 3. Place the client on hold, get up from the workstation, find another workstation where the terminal is free, ask the employee sitting there to move, and then use that terminal to call up the programs to answer the client's question. The worker and possibly one other employee are displaced while the question is being answered, and the worker is away from any notes or other information that may also help respond to the client. PA1 1. Suspend the current operation (adding the new client). PA1 2. Initiate a new computer task. PA1 3. Execute the Menu Program, which permits the operator to perform any computer operation necessary to satisfy the client's question. PA1 4. Re-establish the original program. PA1 5. Re-display the original program background and data. PA1 6. Place the operator back into the field from which the interruption was initiated.
Each of the choices described above has undesirable consequences. And even though this problem has been addressed on some graphics-based operating environments, e.g. on Macintosh personal computers as well as Microsoft Windows and IBM OS/2, they remain as serious problems on multi-user computer systems that utilize ASCII terminals as their primary input device.
Modern laser printers are delivered to the end user with a command language built in. While the Page Description Language (PDL) may differ from one manufacture to another, each of the PDLs provided will allow the end user to perform various tasks such as to draw a line or draw a circle. The languages differ in capability and style, but all PDLs provide a basic graphics capability to the end user. However, in general these PDLs are difficult to learn and use. The commands tend to be very difficult to specify, and often the user needs many trials and errors before achieving the desired result on the page.
There are several products currently on the market that will allow an end user to graphically build an image of the desired form on the monitor and then generate that image on a printer. However, these products build "bit-mapped" images, which require large amounts of disk space for storage and take a long time to print. Moreover these products are based on personal computers and require a bit-mapped monitor to use. Because the products do not utilize the PDL that is provided with the printer to generate the documents, very substantial amounts of printing time are consumed for each page that is printed, so much so that such products are not well suited for generating filled-in forms on an as-needed basis in a busy office.